//class Solution {
//public:
//    void test(TreeNode* root, string& s)
//    {
//        if (root == nullptr)
//            return;
//        s += to_string(root->val);
//        if (root->left == nullptr)
//        {
//            if (root->right == nullptr)
//                return;
//            else
//                s += "()";
//        }
//        else
//        {
//            s += "(";
//            test(root->left, s);
//            s += ")";
//        }
//        if (root->right == nullptr)
//        {
//            return;
//        }
//        else
//        {
//            s += "(";
//            test(root->right, s);
//            s += ")";
//        }
//    }
//    string tree2str(TreeNode* root) {
//        string s;
//        test(root, s);
//        return s;
//    }
//};